------------------------------------------------------------------------------------------------------------------------------
--entrance1
------------------------------------------------------------------------------------------------------------------------------
entrance1 = scene {
   obj          = {
                    "entrance1_start"
                  }
  ,Next         = walk_("entrance2")
  ,verbs        = {
                    { "Next", "дальше", "{}" }
                  }
}

entrance1_start = rooms.dsc
  [[У меня всегда была плохая память на лица. Случалось и так, что я не узнавал людей, которых видел уже множество раз, как будто
    их лица -- все эти особенные приметы, посадка глаз, очертание губ, волосы, форма ноздрей -- мгновенно выцветали в моей памяти,
    стоило мне лишь отвернуться.^^
    Однако имена я запоминал всегда хорошо.^^
    Помнится, в те дни, когда я поступал в институт -- а конкурс был такой, что только одному из тысячи удавалось исполнить свою мечту
    о звёздах, -- то страшно переживал, что не узнаю какого-нибудь профессора с подготовительных курсов, не поздороваюсь, не
    улыбнусь в ответ на привередливый взгляд, и мне припомнят эту рассеянную невежливость на экзамене. Я стоял в коридоре, ожидая
    своей очереди, чтобы зарегистрироваться и получить удостоверение абитуриента, когда увидел её. И в тот самый момент моя плохая
    память вдруг перестала быть проблемой.^^
    Я понял, что её лицо я не забуду никогда.]]


------------------------------------------------------------------------------------------------------------------------------
--entrance2
------------------------------------------------------------------------------------------------------------------------------
entrance2 = scene {
   obj          = {
                     "entrance2_start"
                    ,"entrance2_itself"
                    ,"entrance2_tablo"
                    ,"entrance2_door"
                    ,"entrance2_topic"
                    ,"entrance2_lydia"
                  }
  ,Refresh      = redirect_("Exam", "entrance2_itself")
  ,Wait         = choose_ {
                     ["default"] =
                        [[Просто ждать? Сомневаюсь, что это хорошая идея. Вряд ли она сама ко мне подойдет. А вдруг я её больше не увижу?
                          Я уверен, что уже никогда не смогу забыть её лица.]]
                    ,["entrance2_lydia._talk>0"] = [[Может, стоит просто ей ответить?]]
                  }
  ,Exit         = [[Нет, я не могу просто уйти отсюда. В любом случае мне нужно получить удостоверение абитуриента.]]
}

entrance2_start = rooms.dsc
  [[Ещё секунду назад я с нетерпением ждал, когда на широком настенном табло высветится моё имя, и меня пригласят в приёмную
    комиссию, однако сейчас я не могу думать ни о чём, кроме неё. Попробовать заговорить с ней? Но что я скажу? Как
    начать разговор?]]

entrance2_itself = item {
   nam          = _"коридор"
  ,Exam         = [[Сейчас полдень, и коридор залит солнечным светом, который падает через широкие окна. Здесь множество людей,
                    но я не вижу никого, кроме неё.]]
}:like(pRoom)

entrance2_tablo = item {
   nam          = _"информационное табло"
  ,Exam         = [[До меня пока не дошли, на табло горит чужое имя.]]
  ,Approach     = [[Я подхожу к информационному табло и делаю вид, что разглядываю списки абитуриентов.]]
}:like(pDevice)

entrance2_door = item {
   nam          = _"дверь в приёмную"
  ,Exam         = [[Самая обычная дверь на сервоприводах из металлизированного пластика, но сейчас я уверен, что за этой дверью
                    восседают на тронах полубоги, вершащие судьбы обычных людей.]]
  ,Approach     = [[Меня пока не вызывали.]]
}:like(pDoor)

entrance2_lydia = item {
   _talk        = 0
  ,nam          = _"девушка"
  ,Exam         = choose_ {
                     ["default"] = 
                        [[Девушка стоит у двери в кабинет комиссии и что-то быстро листает в своём планшете. Можно подумать, что она
                          кого-то ждёт.]]
                    ,["s._talk>0"] = [[Девушка смотрит на меня и улыбается, но из-за этой улыбки я почти лишился дара речи.]]
                  }
  ,Approach     = choose_ {
                     ["default"] = 
                        [[Я не могу просто подойти к ней и молчать -- это будет по меньшей мере странно. Надо сначала придумать, о
                          чем с ней заговорить.]]
                    ,["entrance2_topic._done and s._talk==0"] = redirect_("Talk")
                    ,["s._talk>0"] = [[Я и так стою рядом.]]
                  }
  ,Talk         = choose_ {
                     ["default"] = redirect_("Approach")
                    ,["entrance2_topic._done and s._talk==0"] =
                        chain_ {
                          inc_("s._talk"),
                          [[Я глубоко вздыхаю и неуверенно подхожу к девушке. Она замечает меня и опускает свой планшет. Теперь нужно
                            что-то сказать. Хоть что-нибудь. Неважно что.^
                            -- Привет! -- выдавливаю я из себя. -- А ты уже получила удостоверение? Как они там, просто сразу дают
                            или...^
                            -- Нет, -- девушка качает головой. -- Ещё не получала. Я поздно зарегистрировалась. Меня, наверное, ещё
                            не скоро вызовут.^
                            -- Понятно, -- говорю я и тут же теряюсь, не представляя, о чём ещё можно спросить.^
                            -- Меня, кстати, зовут Лида. -- Девушка улыбается. -- А тебя?]]
                        }
                    ,["entrance2_topic._done and s._talk==1"] = walkfast2_("entrance3trans")
                  }
  ,Think        = [[Я ещё ни разу не знакомился с девушкой в общественном месте.]]
}:like(pHuman)

entrance2_topic = item {
   _done        = false
  ,nam          = _"тема для разговора"
  ,Think        = choose_ {
                     ["default"] =
                        chain_ {
                          set_("s._done"),
                          [[Как назло мне ничего не приходит в голову. Может, просто спросить её о регистрации? Она уже получила своё
                            удостоверение или пока ещё ждёт очереди?]]
                        }
                    ,["entrance2_lydia._talk>0"] = [[Поздно. Думать надо было раньше.]]
                  }
}:like(pThink)


------------------------------------------------------------------------------------------------------------------------------
--entrance3
------------------------------------------------------------------------------------------------------------------------------
entrance3trans = gfxroom {
   enter        = sound_("static")
  ,ontimer      = function(s)
                    if s._y ~= nil then
                      drawing.clean(s.pic, 0, s._y, 800, 217);
                    end
                    s._y = rnd(500);
                    local pc = s:loadpic1();
                    if math.mod(s._frames,2)==0 then
                      pc = s:loadpic2();
                    end
                    sprite.copy(pc, s.pic, 0, s._y);
                  end
  ,loadpic1     = function(s)
                    if s.cache1 == nil then
                      s.cache1 = sprite.load("gfx/static1.jpg");
                    end
                    return s.cache1;
                  end
  ,loadpic2     = function(s)
                    if s.cache2 == nil then
                      s.cache2 = sprite.load("gfx/static2.jpg");
                    end
                    return s.cache2;
                  end
  ,stop         = 20
  ,next         = chain_ {
                    function(s)
                      if s.cache1 ~= nil then
                        sprite.free(s.cache1);
                        s.cache1=nil;
                      end
                      if s.cache2 ~= nil then
                        sprite.free(s.cache2);
                        s.cache2=nil;
                      end
                    end,
                    nil_("_y"),
                    walkfast2_("entrance3")
                  }
  ,rate         = 25
}

entrance3 = scene {
   obj          = {
                    "entrance3_start"
                  }
  ,Next         = chain_ {
                    music_("orbit"),
                    walk_("entrance4")
                  }
  ,verbs        = {
                    { "Next", "дальше", "{}" }
                  }
}

entrance3_start = rooms.dsc
  [[Я получил своё удостоверение, подождал, когда она получит своё. В тот день я чувствовал себя так, словно уже сдал вступительные
    экзамены, прошёл через жесточайший отбор, и впереди меня ждёт самый престижный на Земле ВУЗ.^^
    И первая любовь.^^
    И звёзды.]]

entrance4 = gfxroom {
   ontimer      = function(s)
                    if s._frames == 495 then
                      mute_(0,0)();
                      sound_("bam")();
                    end
                    if s._x == nil then
                      s._x = 0;
                    end
                    if s._x > 1300 then
                      return;
                    end
                    local capt = drawing.font("sans-b.ttf", 92);
                    local gfx = s:loadgfx("orbit");
                    sprite.copy(gfx, s._x, 0, 800, 600, s.pic, 0, 0);
                    
                    s._x = s._x + 3;
                    
                    local y = 30;
                    local xs = 70;
                    local sx = 150;
                    local function al(x)
                      local r = s._x-x-sx;
                      if r < 255 then
                        return r;
                      end
                    end
                    if s._x > sx+(150*5) then
                      local t = sprite.text(capt, "Я", "white");
                      sprite.draw(t, s.pic, xs+600, y, al(750));
                      sprite.free(t);
                    end
                    if s._x > sx+(150*4) then
                      local t = sprite.text(capt, "И", "white");
                      sprite.draw(t, s.pic, xs+450, y, al(600));
                      sprite.free(t);
                    end
                    if s._x > sx+(150*3) then
                      local t = sprite.text(capt, "Д", "white");
                      sprite.draw(t, s.pic, xs+300, y, al(450));
                      sprite.free(t);
                    end
                    if s._x > sx+(150*2) then
                      local t = sprite.text(capt, "И", "white");
                      sprite.draw(t, s.pic, xs+150, y, al(300));
                      sprite.free(t);
                    end
                    if s._x > sx+150 then
                      local t = sprite.text(capt, "Л", "white");
                      sprite.draw(t, s.pic, xs, y, al(150));
                      sprite.free(t);
                    end
                  end
  ,stop         = 500
  ,next         = chain_ {
                    nil_("_x"),
                    walkfast2_("entrance5")
                  }
  ,rate         = 60
}

entrance5 = pause {
   time         = 2000
  ,next         = "wakeup1"
}
